
namespace Derm.Render
{
	/// <summary>
	/// 
	/// </summary>
	public class MaterialState : ShaderUniformState
	{
		#region State Information

		/// <summary>
		/// The front face material.
		/// </summary>
		[RenderObjectUniformAttribute("ds_FrontMaterial")]
		public Material FrontMaterial = new Material();

		/// <summary>
		/// The front face textured material.
		/// </summary>
		[RenderObjectUniformAttribute("ds_FrontTexMaterial")]
		public TexturedMaterial FrontMaterialTextures = new TexturedMaterial();

		#endregion

		#region ShaderUniformState Overrides

		/// <summary>
		/// The identifier for the blend state.
		/// </summary>
		public static string StateId = "Derm.Shaders.Standard.Material";

		/// <summary>
		/// The identifier of this RenderState.
		/// </summary>
		public override string Id { get { return (StateId); } }

		/// <summary>
		/// Flag indicating whether the state is context-bound.
		/// </summary>
		/// <remarks>
		/// It returns always true.
		/// </remarks>
		public override bool IsContextBound
		{
			get
			{
				// In compatibility mode, this state shall set Gl.MATERIAL presets
				return (false);
			}
		}

		#endregion
	}
}
